package controllers;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import play.mvc.Controller;

import models.Usuario;
import models.Categoria;

public class inserirUsuario extends Application {

	private static Connection conexao;
	private static Statement comando;
	
	
	
	/***********************************************************************************/
	
	protected static void conectar() throws SQLException {  
		try {
			Class.forName("org.postgresql.Driver");
		} catch (ClassNotFoundException e) {
		}

			conexao = DriverManager.getConnection(  
			        "jdbc:postgresql://localhost:5432/SGRv2",  
			        "postgres",  
			        "senha");
		
			comando =  conexao.createStatement();
	}

	/***********************************************************************************/
	
	public static void inserirUsuario() throws SQLException {
	
		List<Usuario> monitores = Usuario.recuperarPessoas();
		
		List<Categoria> tipos = Categoria.Categorias(1);
		
		List<Categoria> habilitacoes = Categoria.Categorias(2);
		
		
		
		render(monitores, tipos, habilitacoes);
	}	
	
	/***********************************************************************************/
	
	public static void inserir( String nomeusuario, String CPF, String Data_Nascimento, String Telefone, String Celular, String Email, int Tipo, int Habilitacao, int Monitor, int Administrador, String Cep, String Logradouro, int Numero, String Bairro, String Complemento) throws SQLException
	{
		conectar();
				
				comando.executeUpdate("insert into pessoa (" +
				"idmonitor, " +
		        "idadministrador, "+
		        "nomepessoa, "+
		        "datanascimentopessoa, "+        
		        "fonepessoa, "+
		        "celularpessoa, "+
		        "emailpessoa, "+
		        "ruapessoa, "+
		        "bairropessoa, "+
		        "numeroenderecopessoa, "+
		        "cpfpessoa, "+
		        "idhabilitacao, "+
		        "idtipo" +
		        
		        ") values (" +
		        
		        "'" + Monitor + "', " +
		        "'" +Administrador + "', " +
		        "'" +nomeusuario + "', " +	
		        "'" +Data_Nascimento + "', " +	
		        "'" +Telefone + "', " +	
		        "'" +Celular + "', " +	
		        "'" +Email + "', " +	
		        "'" +Logradouro + "', " +	
		        "'" +Bairro + "', " +	
		        "'" +Numero + "', " +	
		        "'" +CPF + "', " +	
		        "'" +Habilitacao + "', " +	
		        "'" +Tipo + "'" +	
		        
				")");
		
				
				visualizarUsuarios.visualizarUsuarios();
				
	}
	
	/*************************************************************/

    public static Usuario recuperarPessoa(int id) throws SQLException
    {    	
    	conectar();
    	
    	ResultSet reader = comando.executeQuery("select * from pessoa where idusuario = " + id);
    	    	
    	Usuario novo = new Usuario();

        if (reader.next())
        {         
            try
            {
                novo.setid(((int)reader.getInt("idusuario") ));
            }
            catch (Exception e) {
				
			}
            try
            {
                novo.setnome((String)reader.getString("nomepessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setdatanascimento((String)reader.getString("datanascimentopessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setfone((String)reader.getString("fonepessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setcelular((String)reader.getString("celularpessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setemail((String)reader.getString("emailpessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setrua((String)reader.getString("ruapessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setbairro((String)reader.getString("bairropessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setnumeroendereco((int)reader.getInt("numeroenderecopessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setcep((String)reader.getString("cep"));
            }
            catch (Exception e) {}
            try
            {
                novo.setcpf((String)reader.getString("cpfpessoa"));
            }
            catch (Exception e) {}
            try
            {
                novo.setidhabilitacao((int)reader.getInt("idhabilitacao"));
            }
            catch (Exception e) {}
            try
            {
                novo.setidtipo((int)reader.getInt("idtipo"));
            }
                        catch (Exception e) {}
            try
            {
                novo.setidmonitor((int)reader.getInt("idmonitor"));
            }
                        catch (Exception e) {}
            try
            {
                novo.setidadministrador((int)reader.getInt("idadministrador"));
            }
                        catch (Exception e) {}
            try
            {
                novo.setlogin((String)reader.getString("login"));
            }
                        catch (Exception e) {}
            try
            {
                novo.setsenha((String)reader.getString("senha"));
            }
                        catch (Exception e) {}
        }

        return novo;

    }

    /*************************************************************/

    
    
    
    
    
    
}
